//! 数据网关微内核
//! 
//! 这是整个数据网关系统的核心，实现了微内核架构的基础组件：
//! - 插件管理器：负责插件的加载、卸载和生命周期管理
//! - 事件总线：插件间的异步通信机制
//! - 资源管理器：内存、连接池、线程池等资源的统一管理
//! - 配置管理器：动态配置和热更新支持
//! - 安全管理器：沙箱和权限控制

pub mod plugin;
pub mod event;
pub mod resource;
pub mod config;
pub mod security;
pub mod kernel;
pub mod query;
pub mod error;

// 重新导出核心类型
pub use kernel::DataGatewayKernel;
pub use plugin::{Plugin, PluginManager, PluginMetadata, Capability};
pub use event::{Event, EventBus, EventHandler, EventType};
pub use resource::{ResourceManager, ResourceType, ResourceConfig};
pub use config::{ConfigManager, ConfigValue};
pub use security::{SecurityManager, AuthContext, Permission};
pub use query::{Query, QueryResult, QueryType};
pub use error::{KernelError, Result};

/// 内核版本信息
pub const KERNEL_VERSION: &str = env!("CARGO_PKG_VERSION");

/// 内核初始化
pub async fn init_kernel() -> Result<DataGatewayKernel> {
    tracing::info!("初始化数据网关微内核 v{}", KERNEL_VERSION);
    
    let kernel = DataGatewayKernel::new().await?;
    
    tracing::info!("微内核初始化完成");
    Ok(kernel)
}
